//
//  ZHIMMessage.h
//  ZHIMKit
//
//  Created by Chen Zhangli on 2021/1/12.
//

#import <Foundation/Foundation.h>
#import "ZHIMMessageBody.h"
#import "ZHIMTextBody.h"
#import "ZHIMFileBody.h"
#import "ZHIMImageBody.h"
#import "ZHIMAudioBody.h"
#import "ZHIMVideoBody.h"
#import "ZHIMCallBody.h"
#import "ZHIMTipBody.h"
#import "ZHIMLocationBody.h"
#import "ZHIMQuestionBody.h"
#import "ZHIMEvaluateBody.h"
#import "ZHIMOfficialBody.h"
#import "ZHIMDefines.h"
#import "ZHIMUser.h"


NS_ASSUME_NONNULL_BEGIN

@interface ZHIMMessage : NSObject

/// 消息ID
@property (nonatomic, copy) NSString *messageId;
/// 消息本地ID
@property (nonatomic, copy) NSString *clientId;
/// 消息所属会话ID
@property (nonatomic, copy) NSString *conversationId;
/// 会话类型
@property (nonatomic, assign) ZHIMConversationType conversationType;
/// 消息服务ID
@property (nonatomic, copy) NSString *serverId;
/// 聊天类型
@property (nonatomic, assign) ZHIMChatType chatType;
/// 消息类型
@property (nonatomic, assign) ZHIMMessageType messageType;
/// 消息方向
@property (nonatomic, assign) ZHIMMessageDirection direction;
/// 消息安全类型
@property (nonatomic, assign) NSInteger securityType;
/// 消息状态
@property (nonatomic, assign) ZHIMMessageStatus messageStatus;
/// 消息内容
@property (nonatomic, strong) id messageBody;
/// 消息发送方
@property (nonatomic, copy) NSString *from;
/// 消息接收方
@property (nonatomic, copy) NSString *to;
/// 消息发送时间
@property (nonatomic, assign) long long timestamp;
/// 是否被所有人阅读（主要是针对群消息）
@property (nonatomic, assign) BOOL isReadByAllMembers;

/// 发送者
@property (nonatomic, strong) ZHIMUser *sender;

/// 客服号
@property (nonatomic, copy) NSString *csId;
/// 版本号
@property (nonatomic, assign) int64_t version;

@end

NS_ASSUME_NONNULL_END
